У меня есть страница с изображениями. На каждом изображении есть событие onClick и идентификатор, позволяющий просмотреть детали этого рецепта. Когда вы щелкаете, он переходит через AJAX к действию в контроллере, которое создает новое представление с Twig. Проблема в том, что он не перезагружается (не кнопка отправки), и когда я назначаю ответ на html, меню в начале новой страницы не работают. И, кроме того, не меняет URL-адрес (только если я сделаю этот хитрый window.history.pushState и не вернусь к истории, пока вы не обновите sh страницу)
HTML
JS
function showDetail() {
var detailId = $(event.target).attr('id');
$.ajax({
type: "post",
url: "showDetail",
dataType: "html",
data: {id:detailId},
success: function(res){
// $("html").html(res); // this one makes menus don't work
},
error: function(jqXHR, textStatus, errorThrown){ $("#respRecipe").html(textStatus + ' ' + jqXHR.status + ' ' + errorThrown); }
});
Контроллер
public function showDetailAction($params) {
$model = new DetailModel;
$recipeData = $model->recipeDataDB($params["id"]);
View::renderTwig('Detail/detail.html', array('recipeData'=>$recipeData[0],
'ingredientsData'=>$recipeData[1], 'commentsData'=>$recipeData[2]));
}
маршруты. json (Могу ли я изменить это, чтобы принимать параметры без необходимости AJAX? )
"showDetail": {
"controller": "DetailController",
"action": "showDetail"
},
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=$1
</IfModule>
Я не знаю, смогу ли я, но скрытая кнопка отправки внутри изображения ... Основные проблемы - обновить страницу sh , URL и рабочие меню.
Заранее спасибо.